Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggest changes to SE skills section #231

Merged
merged 14 commits into from
Apr 5, 2024

Conversation

annalenalamprecht
Copy link
Contributor

Here is my long-promised suggestion for changes to the section on SE skills. Some words on the motivation behind these changes:

  • First suggestion is to rename "software engineering skills" to "technical skills". This is in particular motivate by the fact that things like re-use and teamwork that are included in the research and communication skills are also usually regarded SE skills. I think it makes sense to focus here on the technical aspects in contrast. Also, it makes it a bit easier to motivate why RSE is different from "standard" SE.
  • Then I would suggest to mention the life cycle as first item in the list, as at least DOCBB and LIBS build upon that. I enriched the SWLC with a number of standard technical terms from SE, to show that all these things also have their place in RSE (albeit often in different forms).
  • MOD seems to be the skill to me that in SE is commonly called "program comprehension" so I added that term.

So far for this PR. I have some more comments on the paper, but they will go another route.

Here is my long-promised suggestion for changes to the section on SE skills. Some words on the motivation behind these changes: 
* First suggestion is to rename "software engineering skills" to "technical skills". This is in particular motivate by the fact that things like re-use and teamwork that are included in the research and communication skills are also usually regarded SE skills. I think it makes sense to focus here on the technical aspects in contrast. Also, it makes it a bit easier to motivate why RSE is different from "standard" SE.
* Then I would suggest to mention the life cycle as first item in the list, as at least DOCBB and LIBS build upon that. I enriched the SWLC with a number of standard technical terms from SE, to show that all these things also have their place in RSE (albeit often in different forms).
* MOD seems to be the skill to me that in SE is commonly called "program comprehension" so I added that term. 

So far for this PR. I have some more comments on the paper, but they will go another route.
Copy link
Collaborator

@BeastyBlacksmith BeastyBlacksmith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does make sense to me and reads very well. Just need to fix the typos

@mhagdorn
Copy link
Collaborator

That makes a lot of sense.

@jpthiele
Copy link
Collaborator

Overall, the changes make a lot of sense. Thank you!

I am however unhappy with the new name of 'technical skills' since some of the R and comm skills to some part are technical, (PM) without technical tools seems like a glass half full and (DOMREP) as well as 'Software publication' are also partially technical.

Maybe it has to be some combination like 'technical software skills' or something along those lines.

@mhagdorn
Copy link
Collaborator

Overall, the changes make a lot of sense. Thank you!

I am however unhappy with the new name of 'technical skills' since some of the R and comm skills to some part are technical, (PM) without technical tools seems like a glass half full and (DOMREP) as well as 'Software publication' are also partially technical.

Maybe it has to be some combination like 'technical software skills' or something along those lines.

I see the term technical skills in the context of the other two pillars, research and communication skills. They are all neutral and snappy terms. I think taking those three pillars together it is clear that technical skills are the base software engineering skills. The research skills are the add-ons that make RSEs somewhat different. Both SE and researchers need to have communication skills. They all contain aspects of each other. I take PM tools as productivity tools, ie like a spreadsheet program (I know some people use them for data management...). In the same vein I have no clue how to operate the new fangled teams conference hardware....

We do have both SWREPOS and DOMREP. My understanding is that SWREPOS cover the technical details of using repos and version control. While DOMREP is about knowing your way around of specific repos that are relevant to a particular field.

Co-authored-by: mschwarzmeier <[email protected]>
competencies.md Outdated
@@ -356,7 +356,7 @@ The role of an RSE lies somewhere on the spectrum between that of a researcher
(the "R") and a software engineer (the "SE") and, therefore, requires
competencies in both fields. RSEs typically apply their knowledge and
experience in larger teams which allows them to cultivate this hybrid nature.
Therefore, we categorise the competencies into three categories: *software engineering skills*,
Therefore, we categorise the competencies into three categories: *technical skills*,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get why you want to change it, but, it's a nice touch that we pick up the (S) part of the RSE again, for the three pillars. I think we need to think a bit harder, to find a good compromise. Software craftmanship has already been taken at the end of the paper.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about this again, but next to "research skills" and "communication skills" I still think "technical skills" is the most appropriate among the suggestions circulated thus far. "Communication" also does not pick up anything from RSE, so that is not the pattern here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @annalenalamprecht here. I've recently talked about some of the major differences between SE and RSE, and things like navigating software citation and publication have a strong technical component, but not a software engineering component. (In other contexts one could frame them as being the skills that set RSE apart from SE, but calling them "research software engineering skills" would drop us deep into infinite recursion.)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The more I think about it the more I agree with technical skills. So fine by me.

competencies.md Outdated

<!-- Use repositories -->
\skillsection{SWREPOS}

The RSE should be able to identify and use fitting public platforms (so-called software repositories or repos) to share the artefacts they have
created and invite the public to scrutinise them for public review.
The RSE should be able to identify and use fitting public platforms (so-called software repositories or repos with version control)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel that the big competencies over here should be tech stack independent, and therefore we concentrated on the sharing with people and reviewing of contributions aspect of platforms like github. Due to them being manifestations of human interactions I feel they should exist even after the point in time, when the version control aspect is not visible to the average user anymore but suitably automated away. Side note: we need to introduce the word repo here, since we use it later on the tables which are less abstract.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not mentioning version control here is fine with me

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can see in current main, "version control" as a skill is only mentioned in passing in Appendix A. This is widely at odds with current teaching practice, where VCS is one of the early and central (perhaps the central) skill taught to researchers (see, e.g., The Carpentries curricula, but also Helmholtz & DLR practice).

I see the point you are making @CaptainSifff, but think it'd be very odd not to mention version control here at all!

In fact, I think that the current wording is a bit too abstract to explain the use of SWREPOS in the tables further down, where, e.g., Table 1 says "Should seamlessly interact with the repository of their project.", where repository to me clearly points to a version control repo! I'll make a change suggestion to that effect.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And even thinking of the future of automation. I'd still want some form of versioning to be able
to point to the specific version I used to do my computations.
So I'd still have to somehow interact with it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh and who would be most likely to automate the version control aspect of research?
Us RSEs probably xD So we should still know how it works to be able to maintain the software.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if the issue is that there is a difference between versioning and version control. The repo tracks changes, in the simplest case that is just a linear history of changes (which is sufficient for a small project). Versioning then identifies particular snapshots of the software. Different strategies for versioning exist - major.minor.micro versions, pre-releases, development releases, time based releases, etc. Actually the right term is release management. I think that is something that is missing in the paper.

competencies.md Outdated
- Digital ecosystem module: Programming languages are not enough to work in a digital ecosystem, hence we require something like software craftsmanship, where tools such as the Unix shell, version control systems, build systems, documentation generators, package distribution platforms, and software discovery systems are taught to strengthen skills in (\gls{LIBS}, \gls{DOCBB}, \gls{SWREPOS}, \gls{SRU}).
- Software architecture module: Here we teach software design and \ac{SE}, again strengthening (\gls{DOCBB}, \gls{LIBS}) on a more abstract level.
- Software engineering module: Here we develop foundational software engineering competencies (basic knowledge and skill regarding requirements engineering, software architecture and design, implementation, quality assurance, software evolution), practicalities of carrying out a software project (e.g., use of version control and other software development support tools), again emphasizing and strengthening (\gls{DOCBB}, \gls{LIBS}) on a more abstract level.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The meaning has changed here.... The Software Development tools, we would have placed into Digital Ecosystem Module, whereas the architecture part over here, is more like the high-level view of how to grow big softwares.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we can remove the "practicalities ..." part here, especially as the importance of practical projects is emphasized a little later in the paper.

Comment on lines +402 to +403
with \gls{software-publication}. The RSE should be aware of this life-cycle
and be able to predict and cater to the changing needs of a software project as it moves through the stages.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see, how to predict changing needs beyond the most obvious ones.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mschwarzmeier What exactly is your question/point here?

Copy link
Collaborator

@mschwarzmeier mschwarzmeier Feb 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure, I fully understand this sentence. Maybe an example could help?
@annalenalamprecht

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has just been moved from a different position in the paper is not really a new addition.
So let's just keep it as is for now.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder to Flo: I think currently it's duplicated.

@CaptainSifff
Copy link
Collaborator

CaptainSifff commented Feb 16, 2024

We decided to postpone this discussion to next friday 23.02. Or whichever day the poll suggests...

@CaptainSifff
Copy link
Collaborator

CaptainSifff commented Mar 1, 2024

Use Software Skills as heading for the SE skills.
Another option is the technical skills, which makes it align with RTPs.

CaptainSifff and others added 4 commits March 26, 2024 19:19
Same here, get the code in the MR to suggest on it.

Co-authored-by: Stephan Druskat <[email protected]>
We should sharpen the notion of repos anyway. I think we continue the discussion in the-teachingRSE-project#241
@CaptainSifff
Copy link
Collaborator

So, I think I have created in here a new state for discussion. On the ToDo List are:

After fixing these minor things(Or I do it in main) I could merge this MR and we can continue on the new issues.

What do you think @annalenalamprecht , @sdruskat , @jpthiele , @mhagdorn

@mhagdorn
Copy link
Collaborator

mhagdorn commented Mar 27, 2024

this looks good to me. I do like the change to Software/Technical Skills.

Update: I found another instance of software engineering skills and updated it accordingly

@mhagdorn
Copy link
Collaborator

In the RSE tasks and responsibilities section we have under the "Proper development" bullet point SE skills. Do we want to change the abbreviation? We do have it in the glossary. I think it is fine since we are talking about actual software engineering tasks. But I did make we wonder given we went to great lengths to define technical skills.

@CaptainSifff CaptainSifff self-requested a review March 28, 2024 17:33
@CaptainSifff CaptainSifff dismissed their stale review March 28, 2024 17:35

old. and replaced by now.

@CaptainSifff CaptainSifff merged commit 0e4f667 into the-teachingRSE-project:main Apr 5, 2024
1 check passed
@CaptainSifff CaptainSifff mentioned this pull request Apr 11, 2024
CaptainSifff pushed a commit that referenced this pull request Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants